#! /bin/sh 
# name		$TOOLS/backup/dbexport_begin 
# 
# purpose	Performs a database export. This script is 
#		called by dbbackup. This scripts looks up 
#		'export.par' file for export parameters. 
# 
# usage		$TOOLS/backup/dbexport_begin <dbname>   
#			<export> <special task> 
# 
# parameters	$1=dbname 
#		$2=export 
#		$3=special task 
# 
# 
# .............................................................. 
# local variables 
# .............................................................. 
ERRMSG=' 
$0: syntax error:  
    dbexport_begin <dbname> <export|noexport> <special task>. 
' 
# 
# parameters 
# 
if [ "$1" ] 
then DBNAME=$1 
export DBNAME 
else echo $ERRMSG  >&2 
     exit 1  
fi 
if [ "$2" ] 
then EXPORT=$2 
else echo $ERRMSG  >&2 
     exit 1 
fi 
if [ "$3" ] 
then SPECIAL_TASK=$3 
else SPECIAL_TASK=" " 
fi 
 
# 
# booleans 
#  
TRUE=0 
FALSE=1 
SHUTDOWN_FAILED_B=1 
RESTART_FAILED_B=1 
 
# 
# local variables 
# 
JOBNAME="$TOOLS/backup/dbexport_begin" 
JOBNAME_SHORT="dbexport_begin" 
 
 
CMP="/bin/cmp" 
PARFILE="$TOOLS/db_admin/db_$DBNAME/export.par" 
CMP_ERR="${JOBNAME_SHORT}: fatal error in cmp." 
EXPERR="${JOBNAME_SHORT}: fatal error in export file copy." 
 
# .............................................................. 
# begin 
# .............................................................. 
 
 
# 
# check for database online 
# 
STATUS=`ps -fu oracle | grep "ora_[a-z]*_${DBNAME}" ` 
if [ $? != 0 ]; then 
  echo "${JOBNAME_SHORT}: error - database not online." 
  echo "${JOBNAME_SHORT}: error - database not online."  >&2 
  echo "${JOBNAME_SHORT}: process listing is to follow..."  >&2 
  echo "${JOBNAME_SHORT}: ps -fu oracle | grep \"ora_[a-z]*_$DBNAME\""  >&2 
  ps -fu oracle | grep "ora_[a-z]*_${DBNAME}"  >&2 
  echo "${JOBNAME_SHORT}: exiting."  >&2 
  exit 1 
fi 
 
# ...................................................................... 
# Export 
# ...................................................................... 
echo " " 
echo "${JOBNAME_SHORT}: List previous export files..." 
ls -l $EXPORTDIR/${DBNAME}.exp* 
ls -l $EXPORTDIROLD/${DBNAME}.exp* 
 
# 
# delete old export 
# 
if [ -f $EXPORTDIROLD/${DBNAME}.exp_old ]; then 
  rm $EXPORTDIROLD/${DBNAME}.exp_old 
  if [ $? != 0 ]; then 
    echo "${JOBNAME_SHORT}: error deleting previous export."  
  else 
    echo "${JOBNAME_SHORT}: Deleted previous export file."  
  fi 
else echo "${JOBNAME_SHORT}: Found no previous export file." 
fi	 
# 
# copy current export to old 
# 
if [ -f $EXPORTDIR/${DBNAME}.exp ]; then 
  chmod 644 $EXPORTDIR/${DBNAME}.exp 
  echo "${JOBNAME_SHORT}: cp $EXPORTDIR/${DBNAME}.exp $EXPORTDIROLD" 
  cp $EXPORTDIR/${DBNAME}.exp $EXPORTDIROLD 
  if [ $? != 0 ]; then  
    echo "$EXPERR" 
  else echo "${JOBNAME_SHORT}: $CMP $EXPORTDIR/${DBNAME}.exp 
$EXPORTDIROLD/${DBNAME}.exp"  
    $CMP $EXPORTDIR/${DBNAME}.exp $EXPORTDIROLD/${DBNAME}.exp 
    STATUS="$?" 
    if [ "$STATUS" != 0 ]; then 
      echo "$CMP_ERR" 
    fi 
    echo "${JOBNAME_SHORT}: mv ${EXPORTDIROLD}/${DBNAME}.exp 
${EXPORTDIROLD}/${DBNAME}.exp_old" 
    mv ${EXPORTDIROLD}/${DBNAME}.exp ${EXPORTDIROLD}/${DBNAME}.exp_old 
    if [ $? != 0 ]; then 
      echo "$EXPERR" 
    fi 
    rm $EXPORTDIR/${DBNAME}.exp 
    if [ $? != 0 ]; then 
      echo "${JOBNAME_SHORT}: error deleting export file." 
      exit 
    fi 
  fi 
else echo "${JOBNAME_SHORT}: Found no current export file to copy." 
fi 
 
# 
# Begin export 
# 
exp parfile=$PARFILE  
echo " " 
echo "${JOBNAME_SHORT}: Export complete.  " 
ls -l $EXPORTDIR/${DBNAME}.exp* 
ls -l $EXPORTDIROLD/${DBNAME}.exp*      


